﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

namespace linkPosWeb.Class
{
    class linkyactive
    {

        private int linkyID;
        private int bayiID;
        private string kiy;
        private string registerID;
        private string bayikodu;
        private string harddisk;
        private string anakart;
        private string mac;
        private byte odemedurumu;
        private bool uyumluluk;
        private string errormesaji;
        private int token = 4645139;


        public linkyactive()
        { }


        public int LinkyID { get { return linkyID; } }
        public int BayiID { get { return bayiID; } set { bayiID = value; } }
        public string Kiy { get { return kiy; } set { kiy = value; } }
        public string RegisterID { get { return registerID; } set { registerID = value; } }
        public string Bayikodu { get { return bayikodu; } set { bayikodu = value; } }
        public string Harddisk { get { return harddisk; } set { harddisk = value; } }
        public string Anakart { get { return anakart; } set { anakart = value; } }
        public string Mac { get { return mac; } set { mac = value; } }
        public byte Odemedurumu { get { return odemedurumu; } set { odemedurumu = value; } }
        public bool Uyumluluk { get { return uyumluluk; } set { uyumluluk = value; } }
        public string Errormesaji { get { return errormesaji; } set { errormesaji = value; } }

        // GELEN VERİLER İLE  RANDOM BİR AKTİVASYON KODUNUN OLUŞTURULMASI;

        public void registerolustur()
        {
            registerID = anakart + bayikodu;
        }

        // GELEN VERİLER İLE RANDOM BİR REGİSTER KODU OLUŞTURULMASI;

        public void kiyolustur()
        {

            kiy = "";

            for (int i = 0; i < 16; i++)
            {
                Random rnd = new Random();

                int c = rnd.Next(0, 9);
                kiy += c.ToString();
            }
        }
        // GELEN VERİLER VE OLUŞTURULAN KODLARIN  VERİ TABANINA YAZDIRILMASI



        public void kaydol()
        {
            object[] kolonlar = { "aktivasyonID", "kiy", "bayikodu", "hardisk", "anakart", "mac", "odemedurumu","token" };
            object[] degerler = { registerID, kiy, bayikodu, harddisk, anakart, mac, odemedurumu,token };
            context.ekle("linkyaktivasyon", kolonlar, degerler);


        }
        // GİRİLEN KODUN  MEVCUT KODLA UYUMLULUĞUNUN KONTROLÜ;

        public void uyumlukontrol()
        {
            uyumluluk = false;
            SqlConnection sqlcon = connection.baglanti;
            SqlCommand sqlcmd = new SqlCommand("select * from linkyaktivasyon where aktivasyonID=@aktivID and kiy=@kiy", sqlcon);
            sqlcmd.Parameters.Add("@aktivID", registerID);
            sqlcmd.Parameters.Add("@kiy", kiy);

            sqlcon.Open();
            SqlDataReader sdr = sqlcmd.ExecuteReader();
            while (sdr.Read())
            {
                uyumluluk = true;
            }


            sqlcon.Close();

        }

        // selamlama ve lisans kontrolü

        public void selamlama()
        {
            uyumluluk = false;
            SqlConnection sqlcon = connection.baglanti;
            SqlCommand sqlcmd = new SqlCommand("select * from linkyaktivasyon where anakart=@anakart and hardisk=@hardisk and odemedurumu=1", sqlcon);
            sqlcon.Open();
            SqlDataReader sdr = sqlcmd.ExecuteReader();
            while (sdr.Read())
            {
                uyumluluk = true;
            }

            sqlcon.Close();
        }
        // odeme durumu kontroü
        public void finans()
        {
           
            SqlConnection sqlcon = connection.baglanti;
            SqlCommand sqlcmd = new SqlCommand("select * from linkyaktivasyon where hardisk=@mac", sqlcon);
            sqlcmd.Parameters.AddWithValue("@mac", harddisk);
            sqlcon.Open();
            SqlDataReader sdr = sqlcmd.ExecuteReader();
            while (sdr.Read())
            {
                odemedurumu = (byte)sdr["odemedurumu"];
            }

            sqlcon.Close();
        }
        // error mesajlarının sisteme kaydedilemsi
        
        
        // error mesajlarının sisteme kaydedilemsi


       
        public void errrorkaydet()
        {

            object[] kolonlar = { "err", "tarih" };
            object[] degerler = { errormesaji, context.sadecetarih() };
            context.ekle("err", kolonlar, degerler);


        }

    }
}